package com.logistics.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.logistics.entity.TransportOrder;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 订单 Mapper
 */
@Mapper
public interface TransportOrderMapper extends BaseMapper<TransportOrder> {
    
    /**
     * 根据车辆ID统计订单数量
     */
    Integer countByVehicleId(@Param("vehicleId") Long vehicleId, @Param("tenantId") Long tenantId);
    
    /**
     * 根据车牌号统计订单数量（用于临时车辆）
     */
    Integer countByPlateNumber(@Param("plateNumber") String plateNumber, @Param("tenantId") Long tenantId);
    
    /**
     * 根据车辆ID查询订单列表
     */
    List<TransportOrder> selectByVehicleId(@Param("vehicleId") Long vehicleId, @Param("tenantId") Long tenantId);
    
    /**
     * 根据车辆ID更新订单状态
     */
    int updateStatusByVehicleId(@Param("vehicleId") Long vehicleId, @Param("status") String status, 
                               @Param("updateTime") LocalDateTime updateTime, @Param("tenantId") Long tenantId);
    
    /**
     * 根据车辆ID和当前状态更新订单状态
     */
    int updateOrderStatusByVehicle(@Param("vehicleId") Long vehicleId, @Param("tenantId") Long tenantId,
                                  @Param("fromStatus") String fromStatus, @Param("toStatus") String toStatus);
}

